There are many computer systems where a computer performs parallel processing with multiple processors, and large-scale multiprocessor computer systems with large number of processors are widely used.
To operate a computer system, the performance data of resources making up the system needs to be periodically collected to analyze the system performance. To this end, there has been a performance data management system, for example, where the performance data of each computer (hereinafter, referred to as node) that is considered as one unit on a network is measured, and the performance data of the nodes is collected to a management apparatus which collectively manages the performance data. Then, the performance data thus accumulated in the management apparatus is analyzed, thereby making it possible to confirm the operating status of the system under operation.
Such a performance data management system, however, has a drawback in which, as the number of nodes increases, the amount of data to be transmitted from the nodes to a management apparatus becomes enormous. To deal with this, there has been a data collection method of grouping target nodes, setting sampling intervals for collecting performance data, and collecting as much performance data as possible from the nodes of the target node groups during collection periods between the respective sampling intervals. There has also been a performance analysis method for efficiently analyzing nodes by grouping the nodes according to acquired performance data and analyzing the performance data for each group. Please refer, for example, to Japanese Laid-open Patent Publications No. 2000-172721 and 2007-207173.
However, conventional performance data collection methods have a drawback in which, if the amount of performance data to be transmitted from nodes increases in a large-scale multi-processor environment, a process for managing the performance data has an adverse effect on the system operation.
To analyze the operating status of a system, execution-based performance data at the CPU level, such as processor (hereinafter, referred to also as Central Processing Unit (CPU)) utilization data or memory utilization data, is needed. However, in a large-scale multi-processor environment, many CPUs are installed on one node, and an enormous amount of performance data of the CPUs is collected and accumulated. Especially, in recent years, not only a multicore architecture which provides one processor with a plurality of cores, but also operating systems (OS) where a single core is used as a plurality of virtual cores so as to correspond to multithreads are prevailing. Such an OS executes processes on a thread basis, so that as many pieces of performance data as the number of threads, which are units of execution in a CPU, not as the number of physical CPUs, need to be collected. With respect to physical CPU cores, CPUs corresponding to threads are called logical CPUs. For example, in the case where there are eight CPU cores, and eight threads are allowed to be assigned to one CPU core, the number of logical CPUs is 64 at maximum. In this case, the performance data of the 64 logical CPUs is collected and transmitted to a management apparatus. In the following description, processors and CPUs refer to logical processors and logical CPUs that are units of execution in a CPU, unless expressly specified.
If the number of CPUs increases and the amount of performance data of the CPUs becomes enormous, a large storage region needs to be prepared in a storage apparatus for storing the performance data, which is a problem. In addition, the performance data transmitted from nodes to the management apparatus occupies a network bandwidth, which causes a delay in transmission of other data. That is to say, an increased amount of performance data increases the load of the performance data management, which may have an adverse effect on the system operation.